package com.hex.ds.hdtp.core.inf.data.table.repository;

import com.hex.ds.hdtp.core.inf.common.page.Page;
import com.hex.ds.hdtp.core.inf.common.repository.IBasicRepository;
import com.hex.ds.hdtp.core.inf.data.table.po.TableTransferListPo;
import com.hex.ds.hdtp.core.inf.data.table.po.TableTransferTaskPo;

import java.util.List;

/**
 * @Package com.hex.ds.hdtp.core.inf.data.table.repository
 * @ClassName ITableTransferTaskRepository
 * @Description 表迁移任务-数据服务接口
 * @Author Wang zhihao
 * @Date 2023/8/8 18:41
 * @Version v1.0
 **/
public interface ITableTransferTaskRepository extends IBasicRepository<TableTransferTaskPo> {

    /**
     * @Method queryListByPage
     * @Param
     * @param tableTransferTaskPo
     * @param toPage
     * @Return com.hex.ds.hdtp.core.inf.common.page.Page<com.hex.ds.hdtp.core.inf.data.table.po.TableTransferTaskPo>
     * @Description 表迁移任务-分页查询
     * @Author Wang zhihao
     * @Date 2023/8/8 19:24
     * @Version V1.0
     */
    Page<TableTransferTaskPo> queryListByPage(TableTransferTaskPo tableTransferTaskPo, Page toPage);

    /**
     * @Method queryList
     * @Param
     * @param tableTransferTaskPo
     * @Return java.util.List<com.hex.ds.hdtp.core.inf.data.table.po.TableTransferListPo>
     * @Description 表迁移任务-不分页查询
     * @Author Wang zhihao
     * @Date 2023/8/10 18:29
     * @Version V1.0
     */
    List<TableTransferTaskPo> queryList(TableTransferTaskPo tableTransferTaskPo);

    /**
     * @Method addWithBackPkId
     * @Param
     * @param tableTransferTaskPo
     * @Return java.lang.String
     * @Description 新增并返回主键
     * @Author Wang zhihao
     * @Date 2023/8/10 18:28
     * @Version V1.0
     */
    String addWithBackPkId(TableTransferTaskPo tableTransferTaskPo);

    /**
     * @Method queryInfoById
     * @Param
     * @param pkId
     * @Return com.hex.ds.hdtp.core.inf.data.table.po.TableTransferTaskPo
     * @Description 根据主键获取建表任务信息
     * @Author Wang zhihao
     * @Date 2023/8/13 22:12
     * @Version V1.0
     */
    TableTransferTaskPo queryInfoById(String pkId);

    /**
     * @Method modifySuccessRunLog
     * @Param
     * @param pkId
     * @Return void
     * @Description 更新成功的表迁移数量
     * @Author Wang zhihao
     * @Date 2023/8/16 11:38
     * @Version V1.0
     */
    void modifySuccessNum(String pkId);

    /**
     * @Method modifyFailRunLog
     * @Param
     * @param pkId
     * @Return void
     * @Description 更新失败的表迁移数量
     * @Author Wang zhihao
     * @Date 2023/8/16 11:38
     * @Version V1.0
     */
    void modifyFailNum(String pkId);


    /**
     * @Method modifyStatus
     * @Param
     * @Param endTime
     * @Param pkId
     * @Return void
     * @Description 更新表迁移任务状态
     * @Author gj.xu
     * @Date 2023/9/26 15:41
     * @Version V2.0
     */
    void modifyTransferStatus(String endTime, String pkId);

    /**
     * @Method increaseTotalNum
     * @Param
     * @param pkId
     * @Return void
     * @Description 增加清单总数
     * @Author Wang zhihao
     * @Date 2023/8/25 10:23
     * @Version V1.0
     */
    void increaseTotalNum(String pkId);

    /**
     * @Method decreaseTotalNum
     * @Param
     * @param pkId
     * @Return void
     * @Description 减少清单总数
     * @Author Wang zhihao
     * @Date 2023/8/25 10:23
     * @Version V1.0
     */
    void decreaseTotalNum(String pkId);
}
